iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
2
Modern Web

輕量高效.NET Core開源Blog引擎:Miniblog.Core系列 第 11

11.規劃Electron.Net+Miniblog功能開發

  • 分享至 

  • xImage
  •  

11.規劃Electron.Net+Miniblog功能開發

今天先來規劃要使用Electron.Net來做什麼
主要完成四個功能

  • [完成] 使用metaweblog+XML-RPC讀取所有文章內容
  • [完成] 支持HTML轉MarkDown,MarkDown渲染
  • [完成] 使用metaweblog+XML-RPC更改文章

其中跟metaweblog通訊會使用到XmlRpc技術,它可以讓我們藉由呼叫網路API方式獲取文章資料。

舉例:
在metablog實做GetPost接口,邏輯很簡單:
1.驗證帳號密碼
2.回傳指定文章資料

        public WilderMinds.MetaWeblog.Post GetPost(string postid, string username, string password)
        {
        	/*驗證帳號密碼*/
            ValidateUser(username, password);

			/*回傳文章資料*/
            return _blog.GetPostById(postid);
        }

接著使用C# - XML-RPC.Net套件
客戶端只需要實做metaWeblog.getPost方法、三個參數(帳號、密碼、指定文章ID),就可以跟伺服器獲取指定文章資料。

        public Post getPost(string postid, string username, string password)
        {
            return _metaweblogWeblogService.GetPost(postid, _username, _password)
        }

接著要如何渲染就是.net core web的強項了,_layoutHtmlHelper都可以在Electron.Net中使用。

【舉例】
合併前面的讀取文章範例,使用熟悉的MVC架構來讀取文章,渲染在Post.cshtml頁面上:

namespace ElectronNETDemo.Controllers
{
    public class BlogController : Controller
    {
        private static readonly MetaweblogWeblogService _metaweblogWeblogService = new MetaweblogWeblogService();
        private static readonly string _username = "demo";
        private static readonly string _password = "demo";
        public IActionResult Post(string postid)
        {
            /*驗證帳號密碼*/
            ValidateUser(_username, _password);

            /*回傳文章資料*/
            return View(_metaweblogWeblogService.GetPost(postid, _username, _password));
        }
    }
}
@model ElectronNETDemo.Models.Post

@{
    ViewData["Title"] = "抓取Blog文章";
}

<div>
    <h4>文章名稱 : @Model.title</h4>
    <hr />
    <div>文章簡介</div>
    <div>@Model.mt_excerpt</div>
    <hr />
</div>

登登登,就可以在桌面程式顯示Blog的文章啦!
2018-10-11.23.46.57-image.png

能沿用.NET Core MVC開發桌面程式感覺真的舒服。


上一篇
10. ElectronNET : .NET Core+NodeJS做跨平台桌面程式
下一篇
12.Electron.Net:電腦Markdown編輯器,修改文章上傳Server
系列文
輕量高效.NET Core開源Blog引擎:Miniblog.Core30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
神Q超人
iT邦研究生 5 級 ‧ 2018-10-11 23:47:37

一天兩篇真的太猛了/images/emoticon/emoticon37.gif

暐翰 iT邦大師 1 級 ‧ 2018-10-11 23:54:35 檢舉

快虛脫啦

我要留言

立即登入留言